package com.bosssoft.promotions.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bosssoft.promotions.domain.dto.*;
import com.bosssoft.promotions.domain.po.Coupon;
import org.springframework.stereotype.Service;

import java.util.List;
@Service
public interface CouponService {
    /*
     * 优惠券
     * 1. 按门槛进行折减
     * 2. 减少用户手中该种优惠券的数量，在数据库中做删除标记
     * 3. 选择最合适的优惠券
     * 4. 查看优惠券使用状态
     * @return：折减后的价格
     */
    public void add(QualifiedCouponQueryDTO qualifiedCouponQueryDTO);

    public void reduce(QualifiedCouponQueryDTO qualifiedCouponQueryDTO);

    public List<Coupon> QueryAllPageCoupon(String userId);


    /*
     * 添加新的优惠券
     */
    boolean addCoupon(CouponDTO couponDTO);

    /*
     * 更新优惠券
     */
    boolean updateCoupon(CouponDTO couponDTO);

    /*
     * 删除优惠券
     * <只做删除标记，不做实际删除 >
     */
    boolean deleteCouponById(CouponQueryDTO couponQueryDTO);

    /*
     * 批量删除优惠券
     */
    boolean batchDeleteCouponById(List<CouponQueryDTO> idList);

    /*
     * 查询优惠券
     */
    Coupon queryCoupon(CouponQueryDTO couponQueryDTO);

    /*
     * 查询可用的优惠券
     */
    List<Coupon> queryQualifiedCoupon(QualifiedCouponQueryDTO qualifiedCouponQueryDTO);

    /*
     * 分页获取全部优惠券
     */
    public Page<Coupon> QueryAllPageCoupon(int size, int page);
}
